_link = null; } function connect ( $host, $user, $pass, $persist = false ) { $func = $persist ? 'mysql_pconnect' : 'mysql_connect'; $this->_link = $func ( $host, $user, $pass ); if ( !is_resource ( $this->_link ) ) exit ( mysql_error() ); } function selectDB ( $db ) { return mysql_select_db ( $db, $this->_link ); } function query ( $query ) { return new DB_MySQL_Result ( mysql_query ( $query, $this->_link ) ); } function insertId() { return mysql_insert_id ( $this->_link ); } function affectedRows() { return mysql_affected_rows ( $this->_link ); } function error ( $line = 0, $file = 0 ) { return 'MySQL Error: ' . mysql_error() . " on line $line in $file"; } function escape ( $str ) { return function_exists ( 'mysql_real_escape_string' ) ? mysql_real_escape_string ( $str, $this->_link ) : addslashes ( $str ); } function buildInsertStatement ( $arr ) { $ins = array(); reset ( $arr ); while ( list ( $c, $v ) = each ( $arr ) ) { if ( $v === null ) $ins[] = "`$c`=NULL"; elseif ( is_array ( $v ) ) $ins[] = "`$c`=" . $v[0]; else $ins[] = "`$c`='$v'"; } return implode ( ',', $ins ); } // compat function getAffectRowCount() { return $this->affectedRows(); } } class DB_MySQL_Result { var $_rsrc; function DB_MySQL_Result ( $rsrc ) { $this->_rsrc = $rsrc; } function error() { return $this->_rsrc === false; } function numRows() { return $this->error() ? 0 : mysql_num_rows ( $this->_rsrc ); } function fetchRow ( $type = 'assoc' ) { switch ( $type ) { case 'assoc': return mysql_fetch_array ( $this->_rsrc, MYSQL_ASSOC ); case 'numeric': return mysql_fetch_array ( $this->_rsrc, MYSQL_NUM ); case 'both': return mysql_fetch_array ( $this->_rsrc, MYSQL_BOTH ); case 'object': return mysql_fetch_object ( $this->_rsrc ); default: return false; } } function &fetchAllRows ( $type = 'assoc' ) { $rows = array(); if ( !$this->error() ) while ( false !== ( $row = $this->fetchRow ( $type ) ) ) $rows[] = $row; return $rows; } function free() { return @mysql_free_result ( $this->_rsrc ); $this->_rsrc = null; } } endif; ?>